<?php
/**
 * <https://y.st./>
 * Copyright © 2018 Alex Yst <mailto:copyright@y.st>
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <https://www.gnu.org./licenses/>.
**/

$xhtml = array(
	'<{title}>' => 'Shady',
	'takedown' => '2017-11-01',
	'<{body}>' => <<<END
<img src="/img/CC_BY-SA_4.0/y.st./weblog/2018/11/26.jpg" alt="A bench around a tree" class="framed-centred-image" width="649" height="480"/>
<section id="ISP">
	<h2>Shady $a[ISP]</h2>
	<p>
		Wow.
		The local $a[ISP] is <strong>*way*</strong> shady.
		Let me start form the beginning.
	</p>
	<p>
		My plan to get an Internet connection set up may have seemed rather sudden.
		That&apos;s because it way.
		I&apos;ve been putting it off, but they sent a card in the mail telling me they&apos;ve got a Black Friday sale going on, and I can get television and Internet service bundled for \$35 $a[USD] per month if I sign up by tomorrow.
		I&apos;ve been meaning to try an experiment with their customer service, and need an expired service contract to get the information I&apos;m after.
		They charge you extra to be off-contract, be that because you signed up without one or your contract expired, but I&apos;m told that if your contract expires, you can get them to let you keep the low rate without signing a new contract by letting them know you&apos;re ready to walk if they&apos;re going to bump the price up on you.
		I want to know how feasible this is, and in my curiosity, I&apos;m willing to commit to the initial year.
		If it works, I keep the service.
		I&apos;ve won.
		If it doesn&apos;t, I walk, and I&apos;ve had a year of Internet service.
		I&apos;d love to have my home Web server back up, and while I&apos;m at it, I&apos;d love to have multiplayer Minetest again.
		Minetest is rather therapeutic for me, and I&apos;ve been quite stressed out this past year.
		Now, during the sale period, is a great time for me to take the plunge and get this experiment started.
		I figured I&apos;d try to get an equal or lower price by not getting television service.
		If the price for Internet service alone was higher than bundled with the extra service, I&apos;d get them both, but because I don&apos;t own a television, the television service would go unused.
	</p>
	<p>
		First of all, it turns out there is fine print to the sale offer.
		It&apos;s \$35 $a[USD] per month ... per service.
		If you bundle the two services, it therefore costs twice as much.
		It costs \$70 $a[USD].
		However, it doesn&apos;t stop there.
		There&apos;s some sort of broadcast fee, which is separate.
		So you can add that to the bill.
		There&apos;s also a sports fee, even if you don&apos;t watch sports.
		And yes, I did double check that with the representative.
		The important thing to understand though is that the \$35 $a[USD] price tag isn&apos;t actually valid under any circumstance.
		If you don&apos;t bundle, you don&apos;t get that price, but if you do bundle, you pay double that price, plus the weird television-related fees that aren&apos;t included in the main price just to be deceptive.
	</p>
	<p>
		Secondly, they&apos;ve got their representatives, or at least this representative, trained to steam roll you when you try to ask questions.
		Every time I&apos;d try to ask a question, they&apos;d interrupt and go into a long-winded explanation about something they thought I was asking about, but was completely unrelated.
		It probably over doubled the amount of time I spent there, as all the answers I needed turned out to be very short, and everything they thought I was asking had a very long answer.
		If they&apos;d just have let me finish my sentences, we could&apos;ve saved a lot of time.
	</p>
	<p>
		Third, they charge you more per month if you change connection speeds.
		Like, if you choose the slow connection and find it&apos;s too slow for your needs, you can switch to a faster connection, but they&apos;ll charge you more each month than if you&apos;d chosen the faster connection to begin with.
		Clearly, their goal is to get you to buy a faster connection than you might need, just so you don&apos;t have to risk having to pay more later.
		And if you don&apos;t buy into that and do need the added speed, they&apos;ll follow through and charge you more because at that point, you no longer have a choice.
	</p>
	<p>
		It&apos;s also worth noting that they asked for my Social Security number.
		I didn&apos;t have my Social Security card on me, and told them as much.
		I also told them that I didn&apos;t feel safe giving them that, so I&apos;d have to go with a different company.
		At that point, they told me I could set up the account without it, but I&apos;d need to put a security deposit on the account.
		In other words, they didn&apos;t present me with the option to either give them the personal information or just put down a deposit, but instead jumped right to the option to give out personal information, only backing off and presenting the other option when they saw I wasn&apos;t going for it.
		Ask for options!
		Seriously.
		Even if you&apos;re willing to hand over your Social Security number, unlike me, ask what&apos;ll happen if you refuse.
		Sometimes there will be other options that companies don&apos;t present you with because they&apos;d rather just have as much information on you as they can get.
		And you know what the real kicker was?
		Even though they told me there&apos;d be a \$100 $a[USD] deposit and I agreed to pay it, when they ran my information, they found their company wasn&apos;t going to charge me a deposit after all.
		I got out of handing over sensitive information and <strong>*still*</strong> wasn&apos;t going to have to pay their deposit.
		That said, I did hand over my photo $a[ID].
		I wasn&apos;t trying to register for service anonymously, and if I was, they probably wouldn&apos;t have served me.
		Still.
		Keep your Social Security number private.
		Only your employer, financial institutions, and government are likely to actually need that number.
	</p>
	<p>
		So there we were, and I was about to sign their service contract.
		If you know me, you know I&apos;m highly opposed to service contracts, but like I said, I needed one for my experiment.
		I&apos;m one of those people that actually reads terms of service though, or at the very least, skims them if they&apos;re particularly long.
		I found in the terms that they don&apos;t allow the running of servers on their network.
		The representative had already asked what I intended to use the service for, and I&apos;d told them I was running a server with two different services running.
		They said nothing, save for recommending a faster connection.
		I point out that term in the agreement, and you know what they said?
		They told me to go ahead and ignore that, because the $a[ISP] probably wouldn&apos;t come down on me if I wasn&apos;t using up a huge amount of bandwidth by streaming videos to people off my server!
		Of course, they refused to give me that in writing, just like I assumed they would.
		I asked about if I&apos;d be paying an early termination fee if they cut me off for getting caught (which was one of the several questions that got interrupted and had to be re-asked), and they tried to fed me garbage about how it wouldn&apos;t be a problem because they&apos;d send me notice telling me to knock it off instead of cutting me off right away.
		If I had to shut off the server though, the connection would be useless to me, as I only need it for the server.
		I reiterated that part, and asked a third time.
		And yes.
		If I use the service exactly as I described to the representative before we even got started, there&apos;s a chance I&apos;d get cut off, there&apos;d be nothing I could do about it, and I&apos;d be paying an early termination fee despite not being the one to terminate the service, as the $a[ISP] would be the one to terminate the service.
		The representative was luring me into a trap.
		I bet they make a commission, and didn&apos;t need me to stay with the service.
		They probably only needed me to get on board to start with.
	</p>
	<p>
		For completeness, it&apos;s worth mentioning that they said they&apos;d forward my information to their business connection department.
		They contacted me rather quickly, but then wouldn&apos;t just give me the prices of their plans when I asked.
		After asking if I wanted a static $a[IP] address, I asked how much that would be and ignored that they hadn&apos;t answered my initial question, and they answered about the prices as I&apos;d asked.
		They want \$70 $a[USD] as the base price, with no static $a[IP] address and no modem rental.
		Compare that to the \$30 $a[USD] plan I go the representative today to tell me about, and you&apos;ll see a major difference.
		It&apos;s the slowest plan they&apos;ve got, but I&apos;m not looking for high speeds.
		I just want basic connectivity for my server.
	</p>
	<p>
		On the way home, I thought about renting a $a[VPS] and setting up a Minetest server there.
		I quickly remembered why I don&apos;t play on other people&apos;s servers though: Minetest is over $a[UDP].
		That means it doesn&apos;t run over $a[Tor], and thus can&apos;t make it through my firewall.
		If I don&apos;t have the server on my own network, all I&apos;ve got is single player mode.
		I guess I&apos;ll stop working on these mods to make mining statistics matter.
		They already matter to me - they&apos;re my main goal in the game world - so without other players, there&apos;s no point in adding rewards.
		I might code things little by little as I come up with them, but I won&apos;t pour much time into coming up with ideas.
		For example, I wanted warp points to be one of the rewards offered for increasing one&apos;s stats.
		That&apos;ll be useful, even in single player mode, so I&apos;ll probably code it soon.
		If and when I come up with something for every stat, I&apos;ll likely release.
		Or maybe, I&apos;ll release once I have something for the four original stats, and re-release as I come up with stuff to fill out the roster from later Minetest Game versions.
	</p>
</section>
<section id="drudgery">
	<h2>Drudgery</h2>
	<p>
		My discussion post for the day:
	</p>
	<blockquote>
		<p>
			I&apos;m sorry.
			I wrote my response up that way because the post really helped me.
			The university website doesn&apos;t allow us to edit posts though, so I can&apos;t change my reply.
		</p>
	</blockquote>
	<blockquote>
		<p>
			The inner loop still doesn&apos;t run n<sup>2</sup> times though, does it?
			Try writing similar code, but with a counter that reports the number of times the inner loop has been run.
			<code>i</code> isn&apos;t equal to <code>n-1</code> for every loop, so <code>j</code>&apos;s maximum isn&apos;t <code>n-2</code> every time.
			At one point, <code>j</code> caps out at <code>0</code>, then it caps out at <code>1</code>, et cetera.
			If you run the code, you&apos;ll see the inner loop is run n! times, not n<sup>2</sup> times.
		</p>
	</blockquote>
	<blockquote>
		<p>
			I like your idea of graphing the equations in the first problem.
			It really gives you a good starting point.
			I didn&apos;t think to do that myself, and ended up failing to find the answer.
		</p>
		<p>
			I&apos;ve got to insist though that in the second problem, the code within the inner loop doesn&apos;t get run n<sup>2</sup> times.
			Try running the code on your own machine with a counter, and compare the result with both n! and n<sup>2</sup>.
			You&apos;ll find it matches n!.
		</p>
	</blockquote>
</section>
<section id="Minetest">
	<h2>Minetest</h2>
	<img src="/img/CC_BY-SA_3.0/minetest.net./weblog/2018/11/26.png" alt="My island, back to its starting state" class="framed-centred-image" width="800" height="600"/>
	<p>
		With multiplayer out of the question, I don&apos; think I&apos;ll be using the <code>renew</code> mod.
		It&apos;s really only a necessity for worlds in which idiots might make foolish use of finite resources.
		Such as, for example, using the <code>/pulverise</code> command to dispose of dirt they don&apos;t want, yet cannot be replaced.
		Seriously, players do that, when they could instead put the dirt in one of a multitude of &quot;take me&quot; chests around the server, where some player looking for dirt might find it.
	</p>
	<p>
		Instead, I&apos;ve written a mod to prevent accidental point loss (for example, badly-timed coral-mining can kill the coral you weren&apos;t digging), but I&apos;ll leave finite resources finite.
		First of all, I&apos;m not an idiot, so I don&apos;t dispose of finite materials.
		But additionally, I&apos;m only one player.
		I couldn&apos;t possibly deplete too many resources unless I seriously went out of my way to do so.
		Single player worlds just don&apos;t need renewability like multiplayer worlds do.
	</p>
	<p>
		As this world won&apos;t go public any time soon, and may never, I think I&apos;m going to go about my project a bit differently.
		First of all, I think I&apos;ll make the tunnel far deeper.
		Like, obnoxiously deep for anyone trying to actually use it for transportation.
		I think I&apos;ll also have a surface path.
		I don&apos;t need to worry about getting in anyone&apos;s way, or them getting in mine.
		I don&apos;t need to put my main transportation line underground where no one is building.
	</p>
</section>
END
);
